﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Webdiyer.WebControls.Mvc;
using DTTB.MV2.QUANLYNHANSUTIENLUONG.Models.LinQ.ChamCong;
using DTTB.MV2.QUANLYNHANSUTIENLUONG.Models.FormBean.ChamCongModel;

namespace DTTB.MV2.QUANLYNHANSUTIENLUONG.BussinessDelegate.ChamCongDelegate
{
    public class ThoiKhoaBieuChamCongDelegate
    {
        #region Khai báo biến
        DBChamCongDataContext _DBChamCong = new DBChamCongDataContext();
        ChamCongDelegate.ChamCongServiceDelegate _ChamCongDelegate = new ChamCongDelegate.ChamCongServiceDelegate();
        #endregion

        

        #region TAM.NN

        #region Get
        public PagedList<hs_NhanVien> GetAllNhanVienpagelist(int? pagenumber)
        {
            return GetALLNhanVien().OrderBy(p => p.Ten).ToPagedList(pagenumber ?? 1, Common.CommonVariables.PaggedItemsPerPage);
        }
        public IQueryable<hs_NhanVien> GetALLNhanVien()
        {
            return _DBChamCong.hs_NhanViens.Where(p => p.IsDelete == null || p.IsDelete == false);
        }
        #endregion

        #region Set

        #endregion

        #region Buil
        public void ConvertToFormCacThuTrongTuan(ref ThoiKhoaBieuChamCongForm form, string NgayHienHanh,int? PagedNumber)
        {

            #region Thực hiện lấy các thứ trong tuần

            DateTime NgayDuocChon = DateTime.Today;
            if (!string.IsNullOrEmpty(NgayHienHanh))
                NgayDuocChon = Common.DateTimeExtension.ConvertStringDDMMYYYYToYYYYMMDD(NgayHienHanh);
            else
                NgayDuocChon = DateTime.Today;
            form.ThangCham = NgayDuocChon.Month;
            form.NamDuocCham = NgayDuocChon.Year;
            if ((NgayDuocChon.DayOfWeek + 1) == DayOfWeek.Monday)
                NgayDuocChon = NgayDuocChon.AddDays(-1);
            while (NgayDuocChon.DayOfWeek > DayOfWeek.Monday)
            {
                if (NgayDuocChon == DateTime.Today)
                { form.NgayHienTaiTrongTuan = NgayDuocChon; form.TheHienMauChoNgay = (int)NgayDuocChon.DayOfWeek; }
                else { form.NgayHienTaiTrongTuan = DateTime.Today; form.TheHienMauChoNgay = (int)DateTime.Today.DayOfWeek; }
                NgayDuocChon = NgayDuocChon.AddDays(-1);
            }
            form.NgayDuocChon = NgayHienHanh;

            #region Danh sách nhân viên được chấm công của tưng ngày
           
            form.ListDanhSachNhanVienCanChamCong = new List<BaseNhanVienTrongChamCong>();
            try
            {
                IList<hs_NhanVien> lst = (IList<hs_NhanVien>)this.GetAllNhanVienpagelist(PagedNumber);
                for (int k = 0; k < lst.Count; k++)
                {
                    DateTime NgayBatDauTinh = NgayDuocChon;
                    var _BaseNhanVienTrongChamCong = new BaseNhanVienTrongChamCong();
                    _BaseNhanVienTrongChamCong.Ho = lst[k].Ho;
                    _BaseNhanVienTrongChamCong.Ten = lst[k].Ten;
                    for (int i = 2; i <= 8; i++)
                    {

                        //Dữ liệu chấm công của ngày muốn chấm công
                        _BaseNhanVienTrongChamCong.ListDuLieuChamCongTrongThang.Add(_ChamCongDelegate.GetChamCongNgayVaTangCaByThangNamVaIdNhanVienVaNgay(NgayBatDauTinh.Month, NgayBatDauTinh.Year, lst[k].Id, NgayBatDauTinh.Day));
                        NgayBatDauTinh = NgayBatDauTinh.AddDays(1);


                    }
                    form.ListDanhSachNhanVienCanChamCong.Add(_BaseNhanVienTrongChamCong);
                }
            }
            catch (Exception)
            {
                form.ListDanhSachNhanVienCanChamCong = null;
                form.DanhSachNhanVienPagedList = null;
                //form.Message = "Bảng Chấm Công tháng " + NgayDuocChon.Month + "/" + NgayDuocChon.Year + " chưa được tạo! Vui lòng Tạo Bảng Chấm Công nếu muốn Chấm Công những ngày bạn chọn ! <br><br>";

            }
                     
            #endregion  

            form.NgayThu2 = NgayDuocChon.ToString("dd/MM/yyyy");
            form.TuNgayCham = NgayDuocChon.ToString("dd/MM/yyyy");
            NgayDuocChon = NgayDuocChon.AddDays(1);
            form.NgayThu3 = NgayDuocChon.ToString("dd/MM/yyyy");
            NgayDuocChon = NgayDuocChon.AddDays(1);
            form.NgayThu4 = NgayDuocChon.ToString("dd/MM/yyyy");
            NgayDuocChon = NgayDuocChon.AddDays(1);
            form.NgayThu5 = NgayDuocChon.ToString("dd/MM/yyyy");
            NgayDuocChon = NgayDuocChon.AddDays(1);
            form.NgayThu6 = NgayDuocChon.ToString("dd/MM/yyyy");
            NgayDuocChon = NgayDuocChon.AddDays(1);
            form.NgayThu7 = NgayDuocChon.ToString("dd/MM/yyyy");
            NgayDuocChon = NgayDuocChon.AddDays(1);
            form.NgayThu8 = NgayDuocChon.ToString("dd/MM/yyyy");
            form.DenNgayCham = form.NgayThu8;
            #endregion
            
            #endregion
            

        }
        #endregion
        
    }
}